/**************************************************************************//**
 * @item     CosyOS-III Kernel
 * @file     os_main.c
 * @brief    主函数
 * @author   迟凯峰
 * @version  V1.2.2
 * @date     2025.05.03
 ******************************************************************************/

#include "os_var.h"
#include "os_api.h"
#include "sv_create.h"
#include "sv_task.h"
#include "ur_api.h"

/**
 \brief      启动-CosyOS
 \param      无
 \return     错误码
 \note       用户应自主创建main函数，并在其末尾处调用该函数来启动-CosyOS；
             在正常情况下，该函数并不会返回，而是直接调度至 Starter 运行；
             只有在 Sysidle / Starter 启动失败时，才会返回错误码提示用户。
 */
s_ecode_t uStartCosyOS(void)
{
	s_ecode_t _ecode;
	uExtTask(Sysidle);
	sCat2Str(SYSCFG_STARTERCREATE, ExtTask(Starter));
	#if OS_TIMINTTOTAL || OS_TIMQRYTOTAL
	void os_init_timing(void);
	os_init_timing();
	#endif
	mCosyOS_INIT();
	_ecode = uStartTask_Ready(Sysidle);
	if(_ecode) return _ecode;
	_ecode = uStartTask_Ready(Starter);
	return _ecode;
}
